import { App } from "vue";
import "xe-utils";
import {
    // 全局对象
    VXETable,

    // 表格功能
    // Filter,
    // Edit,
    // Menu,
    // Export,
    // Keyboard,
    // Validator,

    // 可选组件
    Icon,
    Column,
    // Colgroup,
    // Grid,
    Tooltip,
    // Toolbar,
    Pager,
    // Form,
    // FormItem,
    // FormGather,
    // Checkbox,
    // CheckboxGroup,
    // Radio,
    // RadioGroup,
    // RadioButton,
    // Switch,
    // Input,
    Select,
    // Optgroup,
    Option,
    // Textarea,
    // Button,
    // Modal,
    // List,
    // Pulldown,

    // 表格
    Table,
} from "vxe-table";
import zhCN from "vxe-table/es/locale/lang/zh-CN";

// 全局默认参数
VXETable.setup({
    size: "small", // 全局尺寸
    // zIndex: 999, // 全局 zIndex 起始值，如果项目的的 z-index 样式值过大时就需要跟随设置更大，避免被遮挡
    // version: 0, // 版本号，对于某些带数据缓存的功能有用到，上升版本号可以用于重置数据
    table: {
        //   showHeader: true,
        //   keepSource: false,
        //   animat: true,
        //   delayHover: 250,
        //   showOverflow: null,
        //   showHeaderOverflow: null,
        //   showFooterOverflow: null,
        //   size: null,
        // resizable: true,
        //   autoResize: false,
        //   stripe: true,
        size: "small",
        align: "center", //表格对齐方式，主要用于控制列中内容的对齐
        // border: true, //是否显示出表格边框
        //   round: false,
        emptyText: "没有更多数据了！",
        // columnConfig: {
        //     resizable: true, //可以手动拖动列宽，如果某列不需要，则手动在列上写 :resizable="false"
        // },
        rowConfig: {
            isHover: true, //开启行的鼠标滑动高亮
        },
        //   rowId: "_X_ID", // 行数据的唯一主键字段名
        //   radioConfig: {
        //     trigger: "default"
        //   },
        //   checkboxConfig: {
        //     strict: false,
        //     highlight: false,
        //     range: false,
        //     trigger: "default"
        //   },
        //   sortConfig: {
        //     remote: false,
        //     trigger: "default",
        //     orders: ["asc", "desc", null],
        //     sortMethod: null
        //   },
        //   filterConfig: {
        //     remote: false,
        //     filterMethod: null
        //   },
        //   expandConfig: {
        //     trigger: "default",
        //     showIcon: true
        //   },
        //   treeConfig: {
        //     rowField: "id",
        //      parentField: "parentId",
        //      children: "children",
        //      hasChild: "hasChild",
        //      mapChildren: "_X_CHILD",
        //      indent: 20,
        //      showIcon: true
        //   },
        //   tooltipConfig: {
        //     theme: "dark",
        //     enterable: false
        //   },
        //   menuConfig: {
        //     visibleMethod () {}
        //   },
        //   editConfig: {
        //     mode: "cell",
        //     showAsterisk: true
        //   },
        //   importConfig: {
        //     modes: ["insert", "covering"]
        //   },
        //   exportConfig: {
        //     modes: ["current", "selected"]
        //   },
        //   customConfig: {
        //    storage: false
        //   },
        //   scrollX: {
        //     gt: 60
        //   },
        //   scrollY: {
        //     gt: 100
        //   },
    },
    pager: {
        size: null,
        align: "right",
        autoHidden: false,
        pageSize: 20,
        pagerCount: 11,
        pageSizes: [20, 50, 100],
        // layouts: ["PrevJump", "PrevPage", "Number", "NextPage", "NextJump", "FullJump", "Total"],
        layouts: ["PrevPage", "JumpNumber", "NextPage", "Sizes", "FullJump", "Total"],
    },
    // grid: {
    //   size: null,
    //   zoomConfig: {
    //     escRestore: true
    //   },
    //   pagerConfig: {
    //     perfect: false
    //   },
    //   toolbarConfig: {
    //     perfect: false
    //   },
    //   proxyConfig: {
    //     autoLoad: true,
    //     message: true,
    //     props: {
    //       list: null, // 用于列表，读取响应数据
    //       result: "result", // 用于分页，读取响应数据
    //       total: "page.total" // 用于分页，读取总条数
    //     }
    //     beforeItem: null,
    //     beforeColumn: null,
    //     beforeQuery: null,
    //     afterQuery: null,
    //     beforeDelete: null,
    //     afterDelete: null,
    //     beforeSave: null,
    //     afterSave: null
    //   }
    // },
});

export function VXE_Table(app: App) {
    app.use(Icon).use(Column).use(Pager).use(Table).use(Select).use(Option).use(Tooltip);
}
